package com.tbit.uqbike.service.business;

import com.tbit.uqbike.object.pojo.VoiceTask;
import com.tbit.uqbike.object.pojo.dto.TaskDTO;
import com.tbit.uqbike.object.pojo.dto.VoiceTaskDTO;
import com.tbit.uqbike.object.pojo.vo.VoiceTaskVO;
import com.tbit.uqbike.object.value.LoginInfo;
import com.tbit.common.entity.view.PageResult;
import com.tbit.common.entity.view.Result;

/**
 * 语音任务service
 *
 * @author <a href="mailto:liu.haoxiang@tbit.com.cn">BUGXiang</a>
 * @version 1.0
 * @since 2024/3/15
 */
public interface VoiceTaskService {
    /**
     * 分页查询语音任务列表
     *
     * @param voiceTaskDTO voiceTaskDTO
     * @return Result<PageResult < VoiceTaskVO>>
     */
    Result<PageResult<VoiceTaskVO>> queryPage(VoiceTaskDTO voiceTaskDTO);

    /**
     * 新增语音任务
     *
     * @param voiceTask voiceTask
     * @param login     login
     * @return Result<Object>
     */
    Result<Object> add(VoiceTask voiceTask, LoginInfo login);

    /**
     * 编辑语音任务
     *
     * @param dto TaskDTO
     * @return Result<Object>
     */
    Result<Object> update(TaskDTO dto);

    /**
     * 立即更新配置到设备
     *
     * @return Result
     */
    Result<Object> updateNow(Integer brandId, Integer accountId, LoginInfo login);

    /**
     * 更新单个设备
     * @param brandId 品牌id
     * @param accountId 区域id
     * @param machineNo 设备编号
     * @return result
     */
    Result<Object> updateOne(Integer brandId, Integer accountId, String machineNo, LoginInfo login);
}
